Socket
Socket
Sign inDemoInstall

vega-dataflow

Package Overview
Dependencies
20
Maintainers
2
Versions
97
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    vega-dataflow

Reactive dataflow processing.


Version published
Weekly downloads
340K
increased by2.98%
Maintainers
2
Install size
2.42 MB
Created
Weekly downloads
 

Package description

What is vega-dataflow?

The vega-dataflow npm package is a JavaScript library for building reactive dataflow graphs. It is a core component of the Vega visualization grammar, enabling the construction of data processing pipelines that can react to changes in data, parameters, or user interactions.

What are vega-dataflow's main functionalities?

Data Transformation

This feature allows you to apply transformations to data. In this example, a filter transformation is applied to filter out data values less than or equal to 10.

const vega = require('vega-dataflow');
const df = new vega.Dataflow();
const data = df.add([]);
const transform = df.add(vega.transforms.Filter, {expr: 'datum.value > 10', pulse: data});
df.pulse(data, vega.changeset().insert([{value: 5}, {value: 15}])).run();
console.log(transform.value); // [{value: 15}]

Reactive Dataflow

This feature allows you to create reactive dataflow graphs that automatically update when data changes. In this example, an aggregate transformation is used to compute the sum of data values.

const vega = require('vega-dataflow');
const df = new vega.Dataflow();
const data = df.add([]);
const sum = df.add(vega.transforms.Aggregate, {fields: ['value'], ops: ['sum'], pulse: data});
df.pulse(data, vega.changeset().insert([{value: 5}, {value: 15}])).run();
console.log(sum.value); // [{sum_value: 20}]

Parameter Binding

This feature allows you to bind parameters to transformations, making them dynamic and reactive to parameter changes. In this example, a filter transformation is bound to a parameter, and the filter condition updates when the parameter changes.

const vega = require('vega-dataflow');
const df = new vega.Dataflow();
const param = df.add(10);
const data = df.add([]);
const transform = df.add(vega.transforms.Filter, {expr: 'datum.value > param', pulse: data});
df.pulse(data, vega.changeset().insert([{value: 5}, {value: 15}])).run();
console.log(transform.value); // [{value: 15}]
df.update(param, 20).run();
console.log(transform.value); // []

Other packages similar to vega-dataflow

Readme

Source

vega-dataflow

Reactive dataflow processing.

Defines a reactive dataflow graph that can process both scalar values and streaming relational data. A central Dataflow instance manages and schedules a collection of Operator instances, each of which is a node in a dataflow graph. Each operator maintains a local state value, and may also process streaming data objects (or tuples) passing through. Operators may depend on a set of named Parameters, which can either be fixed values or live references to other operator values.

Upon modifications to operator parameters or input data, changes are propagated through the graph in topological order. Pulse objects propagate from operators to their dependencies, and carry queues of added, removed and/or modified tuples.

This module contains only the core reactive dataflow processing engine. Other modules provide a library of Operator types for data stream query processing, including data generation, sampling, filtering, binning, aggregation, cross-stream lookup, visual encoding, and spatial layout.

For more information about data stream transforms, see the Vega transform documentation.

Keywords

FAQs

Last updated on 01 Mar 2023

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc